#pragma once
#include <stdint.h> //for uint32_t
// #include "interface.h"

typedef struct foc
{
    /// @brief 循环处理函数，在appLoop()中调用。如无必要请删除。
    /// @param self 对象指针
    /// @param tickNow 系统时钟，单位ms
    void (*loop)(struct foc *self, uint32_t tickNow);
} foc_t, *foc_p;

#define FOC_FUNC foc_t foc

#define FOC_INIT(this, _loop) \
    this->foc.loop = _loop;

/// @brief 创建 foc 对象
/// @param param 示例参数
/// @return 新建对象的指针
foc_p newFoc(int ID, uint8_t polePairs, uint16_t vSupply, void (*setPwm)(float Ua, float Ub, float Uc));
